Wireless mobile devices such as cell phones, tablets, laptops, wearables and other devices can now talk to more than one network carrier and switch between differing carrier networks. Differing networks may include differing wireless wide area networks (WWAN) such as differing cellular networks that communicate using different radio access technologies (RATs such as GSM, 4G LTE or other radio access technologies) as well as among wireless local area networks (WLAN) such as Wi-Fi networks. For example, where the wireless mobile device can switch among different carriers of different cellular networks (whether they use the same RAT or different RAT's) the mobile devices may automatically switch between different carriers to connect to another network to improve the strength of the current connection. The connection may be a voice call or data communication for example. Such wireless mobile devices may employ multiple SIM profiles, such as one profile for one carrier and another profile for another carrier.
Cellular carrier profile switching occurs by selecting a best carrier SIM profile based on differing geographic locations of the mobile device, time of day, and other network conditions. One of multiple carrier SIM profiles is used at a time and a network carrier switching algorithm, in the form of an executing code component is used that runs on the mobile device. However, a single carrier switching algorithm may not always choose the best carrier SIM profile. By way of example, one carrier switching algorithm may select a carrier in an urban area that may perform badly in a rural area. In designs where two different switching algorithms are used, they are typically mutually exclusive in that only one is run at a time and static since once they are running in an application they are not changed. They may have different decision making processes for the same geographic location and may conflict.
One solution to avoid carrier switching algorithm conflict is to only run a single algorithm at a time or have a user manually select an algorithm to run. However, this can result in an undesirable network switching choice that may cause a lower quality connection resulting in poor device performance.